package com.xp.ai.aiservice;


import com.xp.ai.util.ModelUtils;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.service.AiServices;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;

/***
 * 创建 Ai智能体  一个只能AI 工具
 * 例子 你是一个作家
 */
public class AiWriter {


    /***
     * 创建一个接口类
     */
    interface Writer {
        /**
         * 创建一个接口
         * 使用 SystemMessage 是对原始用户消息的增强
         *
         * @return 输出结果
         */
        @SystemMessage("你是一个短篇悬疑小说作家，根据输入的主题创作对应的小说")
        String write(String title, Long wordCounts);
    }

    interface Writer2 {
        /**
         * 创建一个接口
         * 使用 SystemMessage 是对原始用户消息的增强
         *
         * @return 输出结果
         */
        @SystemMessage("你是一个短篇悬疑小说作家，请创作标题为{{title}},字数为{{count}}的小说")
        String write(@UserMessage("msg")String userMessage, @V("title") String title, @V("count") Long wordCounts);
    }


    public static void main(String[] args) {

        ChatLanguageModel chatLanguageModel = ModelUtils.getHuoshanv3Model();

        //这里是直接调用智能体
//        Writer writer = AiServices.builder(Writer.class)
//                .chatLanguageModel(chatLanguageModel)
//                .build();

        Writer2 writer = AiServices.builder(Writer2.class)
                .chatLanguageModel(chatLanguageModel)
                .build();
        //这里直接调用
        String write = writer.write("悬疑小说","停车场的红衣女孩",200L);
        System.out.println(write);
    }
}
